Position Summary:
We are seeking a highly motivated and talented Embedded Software Engineer to join our clients growing team. In this role, you will play a critical part in the design, development, and deployment of cutting-edge software for our Generator Systems. You will work closely with a cross-functional team of engineers to develop and deliver high-quality, reliable, and safe software solutions.
Responsibilities:
- Design and develop high-quality embedded code for Generator Systems.
- Collaborate with software and hardware engineers to architect, design, and implement best-in-class electrification and software products.
- Develop and maintain software architectures for embedded computing systems in industrial PC environments.
- Develop and manage APQP documentation, including FMEAs and DVP&Rs.
- Ensure that software aspects of products meet all necessary safety, emission, and compliance requirements (e.g., ISO26262, UL).
- Develop and rapidly deploy software products for on-hardware testing.
- Own direct controls software products from inception to completion, overcoming any obstacles encountered.
- Report and track issues that arise in deployed complex systems and on test stands.
- Participate in the design and implementation of the CI/CD environment, including automated build and regression testing.
- Work closely with all teams to ensure compliance with development processes.
- Design and maintain software architectures for embedded computing systems in industrial PC environments.
- Ensure that software aspects of products meet all necessary safety, emission, and compliance requirements.
- Additional duties and responsibilities as assigned.
Qualifications:
- Bachelor's degree in Software Engineering, Computer Science, or a related field.
- 5+ years of experience developing technical products and working in a team environment.
- Proven track record of deploying successful and reliable software across various environments (industrial, aviation, military, automotive, commercial).
Skills & Abilities:
- Experienced in writing and implementing low-level drivers for MCU environments.
- Expertise in communication protocols (CAN, Ethernet, SPI, I2C, Modbus, UDP).
- Proficiency in writing and performing unit tests.
- Experience in writing and owning documentation for software components.
- Proficiency in C/C++ and other scripting languages (Python, Bash).
- Experience with setting up cross-compilation toolchains and development environments for embedded Linux systems.
- Experience in developing customer-facing APIs for communication protocol integration.
- Experience in developing low-level code for the control of hardware subsystems.
- Experience working hands-on with electronics and hardware.
- Experience with Simulink software development is a plus.
- Ability to break down complex problems into smaller, manageable sub-tasks.
- Experience with source control methodologies and tools (Git).
- Familiarity with defect tracking systems (Jira).
- Familiarity with agile development processes.
- Strong follow-through and self-starting nature.
- Excellent written and verbal communication skills.
- Ability to effectively collaborate with a team to solve problems and participate in code reviews.
- Ability to work well in a fast-paced environment and meet deadlines.
- Willingness to travel (10-15% of time).
Benefits:
- Competitive salary and benefits package
- Opportunity to work on cutting-edge technology
- Be a part of a mission-driven company making a positive impact on the environment